Exception in thread main java.lang.NumberFormatException: For input string: "1234 "

Exception in thread "main" java.lang.NumberFormatException: For input string: "1234 "

บทความนี้ ขอเสนอ Exception ที่เคยเจอในการเขียนโปรแกรมกัน ซึ่ง Exception นี้จะมีลักษณะข้อความคล้าย ๆ แบบนี้

 Exception in thread "main" java.lang.NumberFormatException: For input string: "1234 " 	at java.lang.NumberFormatException.forInputString(Unknown Source) 	at java.lang.Integer.parseInt(Unknown Source) 	at java.lang.Integer.parseInt(Unknown Source) 	at com.doesystem.CodeFromDoesystem.main(CodeFromDoesystem.java:6) 

จากข้อความ Exception ข้างบนเราสามารถแปลข้อความบางส่วนได้ ดังนี้
Exception เกิด Exception
thread "main" ก็คือ thread ที่ชื่อว่า main
NumberFormatException เกิด Exception ชนิด NumberFormatException
For input string: "1234 " ก็คือ input ที่เป็น ข้อความ 1234 แล้วก็ค่าว่าง
at java.lang.Integer.parseInt ก็คือ เกิดที่ package java.lang แล้วก็เกิดที่ Class Integer แล้วก็ที่ method ที่ชื่อว่า parseInt

ถ้านำมารวม ๆ กันแล้วอาจจะได้ว่า เกิด Exception ที่ thread main เป็น Exception ชนิด NumberFormatException แล้วก็เกิดที่ Class Integer ที่ method parseInt

เมื่อเรามาดูโค้ดตามด้านล่าง

 package com.doesystem;  public class CodeFromDoesystem { 	public static void main(String[] args) throws Exception { 		String a = "1234 "; 		Integer.parseInt(a); 	} } 

เมื่อเห็นโค้ดและ Exception เราก็จะรู้ได้เลยว่า เป็นข้อผิดพลาดทางการแปลงตัวอักษรเป็นตัวเลข

จากโค้ดและ Exception เรายังได้เรียนรู้การแปล Exception เพิ่มขึ้น คือ
Exception in thread "main" เป็น Exception ที่เกิดขึ้นใน thread main
java.lang.NumberFormatException เป็นชนิดของ Exception ที่เกี่ยวกับรูปแบบของตัวเลข
For input string: "1234 " ก็คือ การใส่ตัวอักษรด้วย "1234 "
at java.lang.Integer.parseInt ก็คือ เกิดที่ package java.lang แล้วก็เกิดที่ Class Integer แล้วก็ที่ method ที่ชื่อว่า parseInt
CodeFromDoesystem.java:6 เป็นการบอกว่าชื่อไฟล์ CodeFromDoesystem.java และเกิด Exception บรรทัดที่ 6